/**
 * 
 */
package br.com.skynix.tcmc.model.financeiro;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import org.hibernate.annotations.ForeignKey;

import br.com.skynix.tcmc.base.model.EntidadeDominio;
import br.com.skynix.tcmc.model.rh.Empresa;

/**
 * @author davi
 * 
 */
@Entity
@Table(name = "tb_categoria_folha_pagamento")
public class CategoriaFolhaPagamento extends EntidadeDominio {
	@ManyToOne
	@JoinColumn(name = "id_categoria_folha_pagamento_fk", nullable = true,
			referencedColumnName = "id")
	@ForeignKey(name = "FK001_categoria_folha_pagamento")
	private CategoriaFolhaPagamento categoriaFolhaPagamento;

	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_empresa_fk", nullable = false,
			referencedColumnName = "id")
	@ForeignKey(name = "FK002_categoria_folha_pagamento")
	private Empresa empresa;

	@Column(nullable = true, precision = 15, scale = 2)
	private BigDecimal porcentagem;

	@Column(name = "flag_deduzido", nullable = false,
			columnDefinition = "BOOLEAN DEFAULT FALSE")
	private Boolean flagDeduzido;

	/**
	 * @return the categoriaFolhaPagamento
	 */
	public CategoriaFolhaPagamento getCategoriaFolhaPagamento() {
		return categoriaFolhaPagamento;
	}

	/**
	 * @param categoriaFolhaPagamento the categoriaFolhaPagamento to set
	 */
	public void setCategoriaFolhaPagamento(
			CategoriaFolhaPagamento categoriaFolhaPagamento) {
		this.categoriaFolhaPagamento = categoriaFolhaPagamento;
	}

	/**
	 * @return the empresa
	 */
	public Empresa getEmpresa() {
		return empresa;
	}

	/**
	 * @param empresa the empresa to set
	 */
	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	/**
	 * @return the porcentagem
	 */
	public BigDecimal getPorcentagem() {
		return porcentagem;
	}

	/**
	 * @param porcentagem the porcentagem to set
	 */
	public void setPorcentagem(BigDecimal porcentagem) {
		this.porcentagem = porcentagem;
	}

	/**
	 * @return the flagDeduzido
	 */
	public Boolean getFlagDeduzido() {
		return flagDeduzido;
	}

	/**
	 * @param flagDeduzido the flagDeduzido to set
	 */
	public void setFlagDeduzido(Boolean flagDeduzido) {
		this.flagDeduzido = flagDeduzido;
	}
}
